草庐IT

MySQL PRIMARY KEY 与 UNIQUE 约束

全部标签

mysql - 如何避免添加重复的外键约束

我想知道是否可以避免多次添加相同的外键约束?示例:如果我执行下面的查询3次,约束将在phpmyadmin中存在3次...如果我第二次和第三次应用该查询时被拒绝,那就太好了。ALTERTABLE`my_items_details`ADDFOREIGNKEY(`items_id`)REFERENCES`my_items`(`item_id`)ONDELETERESTRICTONUPDATECASCADE; 最佳答案 您可以为外键指定一个显式名称,而不是让MySQL为您指定一个默认名称。ALTERTABLE`my_items_detail

mysql - 在 MySQL 中,UNIQUE 索引会作为 varchar 列的快速查找吗?

如果我在MySQL表中有一列short_title并且它被定义为UNIQUE,我是否还必须添加FULLTEXT才能真正快速地搜索它?还是UNIQUE已经保证它可以快速搜索(无需全表扫描)?谢谢,博达赛多 最佳答案 UNIQUE将使用基础索引逐字定位short_title。如果您需要单词匹配(而不是逐字匹配),请使用FULLTEXT索引。另请注意,默认情况下,MyISAM中针对VARCHAR列的B-Tree索引会进行键压缩。这会减慢搜索接近字母表末尾的标题的速度:Indexsearchtimedependsonthevaluebein

java - 即使我用@Column(unique=true) 标记,也需要放置@Index 吗?

即使我用@Column(unique=true)标记,也需要放置@Index吗?我有一个将经常用于检索实体的属性,并希望将其作为数据库的索引列。所以这个属性已经标上了@Column(unique=true),还需要加@Index吗?谢谢 最佳答案 大多数数据库确实使用UNIQUEINDEX实现了UNIQUE约束,但它们不是必需的,UNIQUE约束不一定给出你索引的好处。理论上,查询规划器不会考虑约束,而会考虑索引。也就是说,在MySQL的特殊情况下,似乎是aUNIQUEconstraintandaUNIQUEINDEXare"syn

sql - 在删除之前检查 SQL 中的完整性约束冲突

我的问题有点类似于thisone我想检查DELETE查询是否会因为违反约束而失败。我想在数据库级别执行此操作,因为我认为让它失败并捕获错误很丑陋。另一种选择是使用SELECT查询“手动”检查它以查看是否存在约束,但这相当乏味,恕我直言。是否有“本地”方式来执行此操作? 最佳答案 最简单直接的方法是执行DELETE,并捕获错误。如果您对其他表运行SELECT语句,您可能会了解行是否存在(暗示外键约束)。但是外键约束只是许多完整性约束中的一种。您还必须考虑某些完整性约束可能会通过触发器实现(出于好的原因、坏的原因或根本没有原因)。

MySQL 多级约束

我在MySQL中执行我的数据模型时遇到了问题,我想知道是否有更好的方法来做到这一点。型号:Platforms我的问题是SymbolSets只能属于具有相同平台的组。因此,如果平台A具有带有符号集A的组A,那么带有组B的平台B应该无法获得符号集A,但平台A中的任何组都应该能够获得它。现在我在SymbolSets和Groups之间有一个链接表,我在代码中强制每个平台的唯一性,但我宁愿在数据库中强制执行一个解决方案,这样就没有人可以随意使用它并破坏它。我一开始就不想建立这种多对多关系,但这并不真正适合我们的业务模型。 最佳答案 Platf

MySQL 类断言约束

我是一个MySQL新手,我刚刚发现它不支持断言。我得到了这张表:CREATETABLE`guest`(`ssn`varchar(16)NOTNULL,`name`varchar(200)NOTNULL,`surname`varchar(200)NOTNULL,`card_number`int(11)NOTNULL,PRIMARYKEY(`ssn`),KEY`card_number`(`card_number`),CONSTRAINT`guest_ibfk_1`FOREIGNKEY(`card_number`)REFERENCES`member`(`card_number`))我需要的是

mysql - Magento 和重新索引目录上的错误 1452(违反完整性约束)

Magento拒绝重新索引我的产品目录。它正在记录此错误:2013-01-29T23:24:51+00:00DEBUG(7):Exceptionmessage:SQLSTATE[23000]:Integrityconstraintviolation:1452Cannotaddorupdateachildrow:aforeignkeyconstraintfails(`cjsquash_mgnt1`.`catalog_category_product_index`,CONSTRAINT`FK_CAT_CTGR_PRD_IDX_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID`FO

XCode-首次查看容器视图时,初始约束会发生变化

我有一个带有一个包含表视图控制器的容器的主视图控制器。在主视图控制器中,使用每个方向的约束放置容器,但是当首次出现主视图控制器时,它不会遵循约束。但是,当我切换其他视图(“UpplAddning”),然后返回主视图时,将正确显示容器。看答案好的,所以我找到了解决问题的临时解决方案。overridefuncviewDidLayoutSubviews(){if(firstTimeDisplay)!{self.certificateListViewContainer.frame=CGRect(x:9,y:9,width:self.view.bounds.width-18,height:self.vi

mysql - SELECT DISTINCT + 来自两列的匹配值 = "unique"

我知道标题措辞不佳,但我想不出更好的表达方式。我正在学习Ruby并在MySQL上刷新。我使用已完成航类的历史列表作为练习数据集,大约有100,000行可供使用。每条航类记录包括始发地和目的地机场(字段“origin”和“dest”),以及总飞行距离(字段“distance”)。作为练习,我想展示按距离降序排列的10条最长路线。但是,我想将每对端点视为一条路线,而不管哪个是起点,哪个是目的地。因此,例如JFK-LAX和LAX-JFK应被视为单一路线。当我运行查询时:SELECTDISTINCTdistance,origin,destFROMflightsORDERBYdistanceDE

php - 拉维尔 : 1066 Not unique table/alias

我的Controller中有两个查询if(isset($input['council'])&&$input['council']!=''){$query=$query->join('suburb_near','titles.suburb','=','suburb_near.suburb')->select(array('titles.*','suburb_near.suburb','suburb_near.council'))->where('council','like','%'.$input['council'].'%')->orderBy('views','desc');}if(